package com.cw.jeeyt.dao.mapper.system;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cw.jeeyt.common.annotation.LogParam;
import com.cw.jeeyt.dao.model.system.SystemNoticeDo;
import com.cw.lang.common.mapper.common.CommonMapper;

/**
 * 公告通知 dao数据库操作接口
 *
 * @author chenw
 * @version 1.0.0
 */
public interface SystemNoticeMapper extends CommonMapper<SystemNoticeDo> {
    /**
     * 查询所有公告通知
     *
     * @return 公告通知集合
     */
    List<SystemNoticeDo> querySystemNoticeList();

    /**
     * 删除公告通知
     *
     * @param systemNotice
     */
    @LogParam(logDes = "删除公告通知信息", operateModule = "公告通知信息管理")
    void deleteSystemNotice(@Param("systemNotice") SystemNoticeDo systemNotice);

    /**
     * 修改公告通知
     *
     * @param systemNotice
     */
    @LogParam(logDes = "修改公告通知信息", operateModule = "公告通知信息管理")
    void updateSystemNotice(SystemNoticeDo systemNotice);

    /**
     * 根据主键查询公告通知
     *
     * @param id 主键id
     * @return SystemNotice
     */
    SystemNoticeDo getSystemNoticeById(String id);

    /**
     * 新增公告通知
     *
     * @param systemNotice
     * @return 整数
     */
    @LogParam(logDes = "新增公告通知信息", operateModule = "新增公告通知信息管理")
    Integer insertSystemNotice(SystemNoticeDo systemNotice);

    /**
     * 分页查询公告通知
     *
     * @param systemNotice 查询条件
     * @return SystemNotice集合
     */
    List<SystemNoticeDo> queryByPage(@Param("systemNotice") SystemNoticeDo systemNotice);

    /**
     * 根据是否发布加载通知公告列表
     *
     * @param isPublic 是否发布
     * @return
     * @throws Exception
     */
    List<SystemNoticeDo> querySystemNoticeList(String isPublic);

}
